package com.pc_project.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * letter
 * @author 
 */
@Data
@ApiModel("信件信息")
public class Letter implements Serializable {

    @ApiModelProperty(value = "信件ID", example = "1", required = true)
    private Integer lId;

    @ApiModelProperty(value = "信件类别", example = "11", required = true)
    private Integer ltId;

    @ApiModelProperty(value = "信件内容", example = "你好啊你好啊", required = true)
    private String lInfo;

    @ApiModelProperty(value = "是否通过审核", example = "0")
    private Integer check;

    @ApiModelProperty(value = "如果没通过审核，原因是什么", example = "黄赌毒")
    private String reason;

    @ApiModelProperty(value = "咨询者ID", example = "1", required = true)
    private Integer suId;

    /**
     *
     */
    @ApiModelProperty(value = "回信者id，是否已有回信者愿意帮助", example = "1", required = true)
    private Integer ruId;

    @ApiModelProperty(value = "是否已经完成咨询", example = "1", required = true)
    private Integer finish;

    @ApiModelProperty(value = "反馈", example = "", required = true)
    private String feedback;


    @ApiModelProperty(value = "来信者最后一次修改的时间", example = "", required = true)
    private Date sendTime;


    @ApiModelProperty(value = "回信者接收信件时间", example = "", required = true)
    private Date acceptTime;


    @ApiModelProperty(value = "完成咨询时间", example = "", required = true)
    private Date finishTime;

    /**
     * 预留字段号
     */
    private String num;

    private static final long serialVersionUID = 1L;

    public Letter() {
    }

    public Letter(Integer lId, Integer ltId, String lInfo, Integer check, String reason, Integer suId, Integer ruId, Integer finish, String feedback, Date sendTime, Date acceptTime, Date finishTime, String num) {
        this.lId = lId;
        this.ltId = ltId;
        this.lInfo = lInfo;
        this.check = check;
        this.reason = reason;
        this.suId = suId;
        this.ruId = ruId;
        this.finish = finish;
        this.feedback = feedback;
        this.sendTime = sendTime;
        this.acceptTime = acceptTime;
        this.finishTime = finishTime;
        this.num = num;
    }

    public Integer getlId() {
        return lId;
    }

    public void setlId(Integer lId) {
        this.lId = lId;
    }

    public Integer getLtId() {
        return ltId;
    }

    public void setLtId(Integer ltId) {
        this.ltId = ltId;
    }

    public String getlInfo() {
        return lInfo;
    }

    public void setlInfo(String lInfo) {
        this.lInfo = lInfo;
    }

    public Integer getCheck() {
        return check;
    }

    public void setCheck(Integer check) {
        this.check = check;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Integer getSuId() {
        return suId;
    }

    public void setSuId(Integer suId) {
        this.suId = suId;
    }

    public Integer getRuId() {
        return ruId;
    }

    public void setRuId(Integer ruId) {
        this.ruId = ruId;
    }

    public Integer getFinish() {
        return finish;
    }

    public void setFinish(Integer finish) {
        this.finish = finish;
    }

    public String getFeedback() {
        return feedback;
    }

    public void setFeedback(String feedback) {
        this.feedback = feedback;
    }

    public Date getSendTime() {
        return sendTime;
    }

    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }

    public Date getAcceptTime() {
        return acceptTime;
    }

    public void setAcceptTime(Date acceptTime) {
        this.acceptTime = acceptTime;
    }

    public Date getFinishTime() {
        return finishTime;
    }

    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        Letter letter = (Letter) o;
        return Objects.equals(lId, letter.lId) && Objects.equals(ltId, letter.ltId) && Objects.equals(lInfo, letter.lInfo) && Objects.equals(check, letter.check) && Objects.equals(reason, letter.reason) && Objects.equals(suId, letter.suId) && Objects.equals(ruId, letter.ruId) && Objects.equals(finish, letter.finish) && Objects.equals(feedback, letter.feedback) && Objects.equals(sendTime, letter.sendTime) && Objects.equals(acceptTime, letter.acceptTime) && Objects.equals(finishTime, letter.finishTime) && Objects.equals(num, letter.num);
    }

    @Override
    public int hashCode() {
        return Objects.hash(lId, ltId, lInfo, check, reason, suId, ruId, finish, feedback, sendTime, acceptTime, finishTime, num);
    }

    @Override
    public String toString() {
        return "Letter{" +
                "lId=" + lId +
                ", ltId=" + ltId +
                ", lInfo='" + lInfo + '\'' +
                ", check=" + check +
                ", reason='" + reason + '\'' +
                ", suId=" + suId +
                ", ruId=" + ruId +
                ", finish=" + finish +
                ", feedback='" + feedback + '\'' +
                ", sendTime=" + sendTime +
                ", acceptTime=" + acceptTime +
                ", finishTime=" + finishTime +
                ", num='" + num + '\'' +
                '}';
    }
}
